home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 41.zip / BS1 part 41 / Devpac 2.12 disk 2.adf / include.cbm / devices / serial.i < prev    next >
Text File  |  1987-03-31  |  7KB  |  183 lines

  1.  
  2. *****************************************************************
  3. *                                                               *
  4. * Copyright 1985, Commodore Amiga Inc.  All rights reserved.    *
  5. * No part of this program may be reproduced, transmitted,       *
  6. * transcribed, stored in retrieval system, or translated into   *
  7. * any language or computer language, in any form or by any      *
  8. * means, electronic, mechanical, magnetic, optical, chemical,   *
  9. * manual or otherwise, without the prior written permission of  *
  10. * Commodore-Amiga Incorporated, 983 University Ave. Building #D,*
  11. * Los Gatos, California, 95030                                  *
  12. *                                                               *
  13. *****************************************************************
  14.  
  15.  
  16. *****************************************************************
  17. *
  18. * serial.i -- external declarations for Serial Port Driver
  19. *
  20. * SOURCE CONTROL
  21. * ------ -------
  22. * $Header: serial.i,v 33.1 86/04/29 14:19:10 barry Exp $
  23. *
  24. * $Locker:  $
  25. *
  26. *****************************************************************
  27.  
  28.     IFND    DEVICES_SERIAL_I
  29. DEVICES_SERIAL_I SET 1
  30.  
  31.     IFND     EXEC_STRINGS_I
  32.     include 'exec/strings.i'
  33.     ENDC    !EXEC_STRINGS_I
  34.  
  35.     IFND     EXEC_IO_I
  36.     include 'exec/io.i'
  37.     ENDC    !EXEC_IO_I
  38.  
  39. *--------------------------------------------------------------------
  40. *
  41. * Useful constants
  42. *
  43. *--------------------------------------------------------------------
  44. *
  45. SER_CTL       EQU     $1113     ; default char's for xON,Xoff.
  46. SER_DBAUD     EQU     9600      ; default baud 
  47.  
  48. *
  49. *--------------------------------------------------------------------
  50. *
  51. * Driver Specific Commands
  52.  
  53. SDCMD_QUERY     EQU     CMD_NONSTD
  54. SDCMD_BREAK     EQU     CMD_NONSTD+1
  55. SDCMD_SETPARAMS EQU     CMD_NONSTD+2
  56.  
  57. SER_DEVFINISH   EQU     CMD_NONSTD+2 ; number of device comands 
  58.  
  59. *--------------------------------------------------------------------
  60.  
  61. *-- SERIALNAME is a generic macro to get the name of the driver.  This
  62. *-- way if the name is ever changed you will pick up the change
  63. *-- automatically.
  64. *--
  65. *-- Normal usage would be:
  66. *--
  67. *-- internalName:       SERIALNAME
  68. *--
  69.  
  70. SERIALNAME:     MACRO
  71.                 STRING  'serial.device'
  72.                 ENDM
  73.  
  74.         BITDEF  SER,XDISABLED,7   ; SERFLAGS xOn-xOff feature disabled bit
  75.         BITDEF  SER,EOFMODE,6     ;    "     EOF mode enabled bit
  76.         BITDEF  SER,SHARED,5      ;    "     non-exclusive access
  77.         BITDEF  SER,RAD_BOOGIE,4  ;    "     high-speed mode active
  78.         BITDEF  SER,QUEUEDBRK,3   ;    "     queue this Break ioRqst
  79.         BITDEF  SER,7WIRE,2       ;    "     RS232 7-wire protocol 
  80.         BITDEF  SER,PARTY_ODD,1   ;    "     use-odd-parity bit
  81.         BITDEF  SER,PARTY_ON,0    ;    "     parity-enabled bit 
  82.         BITDEF  IOSER,QUEUED,6    ; IO_FLAGS rqst-queued bit
  83.         BITDEF  IOSER,ABORT,5     ;     "    rqst-aborted bit
  84.         BITDEF  IOSER,ACTIVE,4    ;     "    rqst-qued-or-current bit
  85.         BITDEF  IOST,XOFFREAD,4   ; IOST_HOB receive currently xOFF'ed
  86.         BITDEF  IOST,XOFFWRITE,3  ;     "    transmit currently xOFF'ed
  87.         BITDEF  IOST,READBREAK,2  ;     "    break was latest input
  88.         BITDEF  IOST,WROTEBREAK,1 ;     "    break was latest output
  89.         BITDEF  IOST,OVERRUN,0    ;     "    status word RBF overrun
  90. *       BITDEF's (longword field) ; IO_EXTFLAGS (extended flag longword)
  91.         BITDEF  SEXT,MSPON,1      ;     "    use mark-space parity,not odd-even
  92.         BITDEF  SEXT,MARK,0       ;     "    if mark-space, use mark
  93. *
  94. **************************************************************************************
  95.  STRUCTURE TERMARRAY,0
  96.         ULONG    TERMARRAY_0
  97.         ULONG    TERMARRAY_1
  98.         LABEL    TERMARRAY_SIZE
  99.  
  100. *****************************************************************
  101. * CAUTION !!  IF YOU ACCESS the serial.device, you MUST (!!!!) use an
  102. * IOEXTSER-sized structure or you may overlay innocent memory, okay ?!  
  103. *****************************************************************
  104.  
  105.  STRUCTURE IOEXTSER,IOSTD_SIZE
  106.  
  107. *     STRUCT   MsgNode
  108. *   0   APTR     Succ
  109. *   4   APTR     Pred
  110. *   8   UBYTE    Type
  111. *   9   UBYTE    Pri
  112. *   A   APTR     Name
  113. *   E   APTR     ReplyPort
  114. *  12   UWORD    MNLength
  115. *     STRUCT   IOExt
  116. *  14   APTR     IO_DEVICE
  117. *  18   APTR     IO_UNIT
  118. *  1C   UWORD    IO_COMMAND
  119. *  1E   UBYTE    IO_FLAGS
  120. *  1F   UBYTE    IO_ERROR
  121. *     STRUCT   IOStdExt
  122. *  20   ULONG    IO_ACTUAL
  123. *  24   ULONG    IO_LENGTH
  124. *  28   APTR     IO_DATA
  125. *  2C   ULONG    IO_OFFSET
  126. *
  127. *  30
  128.         ULONG   IO_CTLCHAR      ; control char's (order = xON,xOFF,rsvd,rsvd)
  129.         ULONG   IO_RBUFLEN      ; length in bytes of serial port's read buffer
  130.         ULONG   IO_EXTFLAGS     ; additional serial flags (see bitdefs above)
  131.         ULONG   IO_BAUD         ; baud rate requested (true baud)
  132.         ULONG   IO_BRKTIME      ; duration of break signal in MICROseconds
  133.         STRUCT  IO_TERMARRAY,TERMARRAY_SIZE ; termination character array
  134.         UBYTE   IO_READLEN      ; bits per read char (bit count)
  135.         UBYTE   IO_WRITELEN     ; bits per write char (bit count)
  136.         UBYTE   IO_STOPBITS     ; stopbits for read (count)
  137.         UBYTE   IO_SERFLAGS     ; see SERFLAGS bit definitions above 
  138.         UWORD   IO_STATUS       ; status of serial port, as follows:
  139. *
  140. *                  BIT  ACTIVE  FUNCTION
  141. *                   0    low    busy
  142. *                   1    low    paper out
  143. *                   2    low    select
  144. *                   3    low    Data Set Ready
  145. *                   4    low    Clear To Send
  146. *                   5    low    Carrier Detect
  147. *                   6    low    Ready To Send
  148. *                   7    low    Data Terminal Ready
  149. *                   8    high   read overrun
  150. *                   9    high   break sent
  151. *                  10    high   break received
  152. *                  11    high   transmit x-OFF'ed       
  153. *                  12    high   receive x-OFF'ed
  154. *               13-15           reserved
  155. *
  156.         LABEL   IOEXTSER_SIZE
  157.  
  158. *********************************************************************************
  159.  
  160. *--------------------------------------------------------------------
  161. *
  162. * Driver error definitions
  163. *
  164. *--------------------------------------------------------------------
  165.  
  166. SerErr_DevBusy          EQU     1
  167. SerErr_BaudMismatch     EQU     2
  168. SerErr_InvBaud          EQU     3
  169. SerErr_BufErr           EQU     4
  170. SerErr_InvParam         EQU     5
  171. SerErr_LineErr          EQU     6
  172. SerErr_NotOpen          EQU     7    
  173. SerErr_PortReset        EQU     8   
  174. SerErr_ParityErr        EQU     9
  175. SerErr_InitErr          EQU    10
  176. SerErr_TimerErr         EQU    11
  177. SerErr_BufOverflow      EQU    12
  178. SerErr_NoDSR            EQU    13
  179. SerErr_NoCTS            EQU    14
  180. SerErr_DetectedBreak    EQU    15
  181.  
  182.     ENDC    !DEVICES_SERIAL_I 
  183.